package Funcionalidades;

import br.com.beautycenter.bean.Cargo;
import br.com.beautycenter.bean.Endereco;
import br.com.beautycenter.bean.Funcionario;
import br.com.beautycenter.bean.Cliente;
import br.com.beautycenter.bean.Feriado;
import br.com.beautycenter.bean.Produto;
import br.com.beautycenter.bean.Sangria;
import br.com.beautycenter.bean.Suprimento;
import br.com.beautycenter.bean.TipoDespesa;
import br.com.beautycenter.bean.Tratamento;
import br.com.beautycenter.bean.Venda;
import br.com.beautycenter.bean.VendasxProdutos;

/**
 *
 * @author magelinha
 * 
 * Essa classe é voltada para métodos referente aos beans
 */
public class Bean {
    /*
     * É interessante fazer uma cópia dos VALORES dos objetos. Já tive uma experiência negativa de ao atualizar um objeto no banco,
     * atualizou um monte, simplesmente porque eu fiz objeto1 = objeto2.
     */
    public static void copiarFuncionario(Funcionario antigo, Funcionario novo){
        //dados pessoais
        novo.setNome(antigo.getNome());
        copiarEndereco(antigo.getEndereco(), novo.getEndereco());
        novo.setDtNascimento(antigo.getDtNascimento());
        novo.setCpf(antigo.getCpf());
        novo.setRg(antigo.getRg());
        novo.setTelefoneFixo(antigo.getTelefoneFixo());
        novo.setTelefoneCelular(antigo.getTelefoneCelular());
        novo.setTelefoneComercial(antigo.getTelefoneComercial());
        novo.setEmail(antigo.getEmail());
        
        //dados empresariais
        novo.setLogin(antigo.getLogin());
        novo.setSenha(antigo.getSenha());
        novo.setCargo(antigo.getCargo());
        novo.setRegistro(antigo.getRegistro());
        novo.setSalario(antigo.getSalario());
        novo.setDtAdmissao(antigo.getDtAdmissao());
        novo.setDtDemissao(antigo.getDtDemissao());
        novo.setPermissao(antigo.getPermissao());
        novo.setObservacao(antigo.getObservacao());
        
    }
    
    public static void copiarEndereco(Endereco antigo, Endereco novo){
        novo.setLogradouro(antigo.getLogradouro());
        novo.setNumero(antigo.getNumero());
        novo.setBairro(antigo.getBairro());
        novo.setCidade(antigo.getCidade());
        novo.setCep(antigo.getCep());
    }
    
    public static void copiarPaciente(Cliente antigo, Cliente novo){
        //dados pessoais
        novo.setNome(antigo.getNome());
        copiarEndereco(antigo.getEndereco(), novo.getEndereco());
        novo.setDtNascimento(antigo.getDtNascimento());
        novo.setCpf(antigo.getCpf());
        novo.setRg(antigo.getRg());
        novo.setTelefoneFixo(antigo.getTelefoneFixo());
        novo.setTelefoneCelular(antigo.getTelefoneCelular());
        novo.setTelefoneComercial(antigo.getTelefoneComercial());
        novo.setEmail(antigo.getEmail());
        novo.setFoto(antigo.getFoto());
        
        //dados empresariais
        novo.setFilhos(antigo.isFilhos());
        novo.setProfissao(antigo.getProfissao());
        novo.setQtdFilhos(antigo.getQtdFilhos());
        novo.setMedicoResponsavel(antigo.getMedicoResponsavel());
        novo.setDtAvaliacao(antigo.getDtAvaliacao());
        novo.setQueixaPrincipal(antigo.getQueixaPrincipal());
        novo.setObservacao(antigo.getObservacao());
        
        novo.setAtivo(antigo.isAtivo());
    }
    
    public static void copiarTratamento(Tratamento antigo, Tratamento novo){
        novo.setNomeTratamento(antigo.getNomeTratamento());
        novo.setDescricaoTratamento(antigo.getDescricaoTratamento());
        novo.setValorTratamento(antigo.getValorTratamento());
        novo.setTempo(antigo.getTempo());
        novo.setDtCadastro(antigo.getDtCadastro());
        novo.setTipoTratamento(antigo.getTipoTratamento());
    
        novo.setAtivoTratamento(antigo.isAtivoTratamento());
    }
    
    public static void copiarSuprimento(Suprimento antigo, Suprimento novo){
        novo.setValorSuprimento(antigo.getValorSuprimento());
        novo.setDescricaoSuprimento(antigo.getDescricaoSuprimento());
        novo.setFuncionario(antigo.getFuncionario());
        novo.setDataCadastro(antigo.getDataCadastro());
    }
    
    public static void copiarSangria(Sangria antigo, Sangria novo){
        novo.setValorSangria(antigo.getValorSangria());
        novo.setDescricaoSangria(antigo.getDescricaoSangria());
        novo.setFuncionario(antigo.getFuncionario());
        novo.setDataCadastro(antigo.getDataCadastro());
    }
    
    public static void copiarProduto(Produto antigo, Produto novo){
        novo.setDescricao(antigo.getDescricao());
        novo.setCodigoBarras(antigo.getCodigoBarras());
        novo.setEstoque(antigo.getEstoque());
        novo.setValorCusto(antigo.getValorCusto());
        novo.setValorVenda(antigo.getValorVenda());
        novo.setDtCadastro(antigo.getDtCadastro());
        novo.setAtivo(antigo.isAtivo());
    }
   
    public static void copiarFeriado(Feriado antigo, Feriado novo){
        novo.setDescricaoFeriado(antigo.getDescricaoFeriado());
        novo.setDtFeriado(antigo.getDtFeriado());   
    }
    
    public static void copiarCargo(Cargo antigo, Cargo novo){
        novo.setNomeCargo(antigo.getNomeCargo());           
    }
    
    public static void copiarVenda(Venda antigo, Venda novo){
        novo.setValorTotalBruto(antigo.getValorTotalBruto());
        novo.setValorTotaLiquido(antigo.getValorTotaLiquido());
        novo.setDescPorcentagem(antigo.getDescPorcentagem());
        novo.setDescDinheiro(antigo.getDescDinheiro());
        novo.setDtVenda(antigo.getDtVenda());
    }
    
    public static void copiarVendaProdutos(VendasxProdutos antigo, VendasxProdutos novo){
        novo.setProduto(antigo.getProduto());
        novo.setPrecoBruto(antigo.getPrecoBruto());
        novo.setQuantidade(antigo.getQuantidade());
        novo.setDesconto(antigo.getDesconto());
        novo.setPrecoLiquido(antigo.getPrecoLiquido());
        novo.setVenda(antigo.getVenda());
    }
    
    public static void copiarTipoDespesa(TipoDespesa antigo, TipoDespesa novo){
        novo.setTipoDespesa(antigo.getTipoDespesa());
    }
}